包名 结绳.基本
/*
全局基础类，当类未定义基础类时，编译器会将本类作为该类的基础类
所有类都携带本类所有方法
*/
@外部源文件("../../cpp/tie_base.h")
@外部源文件("../../cpp/tie_base.cpp")
@引入头文件("tie_base.h")
@指代类("TieObject")
@全局基础类
类 对象
	
	//获取当前类名
	@嵌入式代码
	方法 取类名() : 文本
		code #<文本>(GetClassName())
	结束 方法
	
	@嵌入式代码
	方法 取地址() : 整数
		code &#this
	结束 方法
	
结束 类

/*
文本类，用于表示文本
其值必须用引号引起来，如: "123","你好"
*/
@引入头文件("<string>")
@指代类("TieString")
类 文本
	//判断当前文本是否包含指定文本内容
	@运算符重载
	方法 ?(欲判断文本 为 文本) : 逻辑型
		code return #this.rfind(#欲判断文本) != -1;
	结束 方法

    //获取当前文本的长度(字符数)
	方法 取文本长度() : 整数
	    code return #this.length();
	结束 方法

    //获取指定索引处的字符
	方法 取字符(索引 : 整数) : 字符
	    code return #this.at(#索引);
	结束 方法

    //查找字符在文本中的索引
    方法 查找文本(欲查找字符 : 文本, 起始索引 : 整数 = 0) : 整数
	    code return #this.find_first_of(#欲查找字符, #起始索引);
	结束 方法

    //从右往左查找字符在文本中的索引
    方法 倒找文本(欲查找文本 : 文本, 起始索引 : 整数 = 0) : 整数
	    code return #this.find_last_of(#欲查找文本, #起始索引);
	结束 方法

    //判断文本内容是否为空
    方法 是否为空() : 逻辑型
	    code return #this.empty();
	结束 方法

    //将当前文本转换为整数型值
    方法 到整数() : 整数
	    code return #<类型转换>::Str2Num(#this);
	结束 方法
结束 类

/*
逻辑型，其只有两个值: 真/假
*/
@指代类("TieBool")
类 逻辑型
    //将当前逻辑值转换为整数型值
    方法 到整数() : 整数
        @code
        if (#this == true) {
            return 1;
        } else {
            return 0;
        }
        @end
	结束 方法

    //将当前逻辑型值转换为文本型值
    方法 到文本() : 文本
	    @code
	    if (#this == true) {
	        return "真";
	    } else {
	        return "假";
	    }
	    @end
	结束 方法
结束 类

/*
整数，范围为-2^31到2^31-1
*/
@指代类("TieInt")
类 整数
    //将当前整数值转换为文本型值
    方法 到文本() : 文本
	    code return #<类型转换>::Num2Str(#this);
	结束 方法

    //将当前整数值转换为逻辑型值
    @嵌入式代码
    方法 到逻辑值() : 逻辑型
	    code (#this == 0 ? false : true)
	结束 方法
结束 类

/*
长整数，范围为-2^63到2^63-1
*/
@指代类("TieLong")
类 长整数
    //将当前长整数值转换为文本型值
    方法 到文本() : 文本
	    code return #<类型转换>::ToString(#this);
	结束 方法
结束 类

/*
小数，带有小数点的数，如3.14
*/
@指代类("TieDouble")
类 小数
    //将当前小数转换为整数型值
    @嵌入式代码
    方法 到整数() : 整数
	    code (int)#this
	结束 方法

    //将当前小数数值转换为文本型值
    方法 到文本() : 文本
	    code return #<类型转换>::ToString(#this);
	结束 方法
结束 类

/*
单精度小数，精度低于小数
*/
@指代类("TieFloat")
类 单精度小数
    //将当前小数转换为整数型值
    @嵌入式代码
    方法 到整数() : 整数
	    code (int)#this
	结束 方法

    //将当前小数数值转换为文本型值
    方法 到文本() : 文本
	    code return #<类型转换>::ToString(#this);
	结束 方法
结束 类

/*
字符，用于表示单个字，必须用单引号引起来，如：'A'，'中'
*/
@指代类("TieChar")
类 字符
    //将当前字符转换为整数型值
    @嵌入式代码
    方法 到整数() : 整数
	    code (TieInt) #this
	结束 方法

    //将当前字符转换为文本型值
    方法 到文本() : 文本
	    code return #<类型转换>::ToString(#this);
	结束 方法
结束 类